Ok
This is a revised script , i tried cleaning it up abit
Code:
main:
local.result = registerev "spawn" global/custom/weapons.scr::spawn
local.result = registerev "connected" global/custom/weapons.scr::connected
thread get_cvars
thread weapon_message
teamswitchdelay .2
end
connected local.player:
thread spawn local.player
end
spawn local.player:
waitthread weapon_check local.player
thread weapon_swap local.player
end
//////////////////////////////////////
weapon_check local.player:
wait 0.6
////////////////////////////////////////////////////////////
////////////// Weapon Check Part ///////////////////////////
if(local.player != NULL && local.player != NIL && isAlive(local.player) && local.player.dmteam != spectator && !local.player.checked)
{
local.player iprint "Start Check"
local.player weaponcommand dual targetname ("weap" + local.player.entnum )
local.player.weapon = $("weap" + local.player.entnum ).model
if(local.player.weapon != NIL && local.player.weapon != NULL)
{
for (local.i = 1; local.i <= level.notallowed.size; local.i++)
{
if(local.player.weapon == level.notallowed[local.i])
{
local.player take level.notallowed[local.i]
local.player iprint "Not Allowed"
if(getcvar(pe_weapon_choice) != "1")
{
local.player give models/weapons/KAR98sniper.tik
local.player use models/weapons/KAR98sniper.tik
}
if(getcvar(pe_weapon_choice) == "1")
{
local.player spectator
local.player stufftext "pushmenu SelectPrimaryWeapon"
}
if(getcvar(pe_weapon_message) == "1")
{
local.player iprint ("The Weapon you chose is unavailable") 1
local.player iprint (level.allowed) 1
//local.player iprint ("So here is a Sniper") 1
}
}
local.player.checked = 1
}
}
local.player iprint "End Check"
}
wait 0.5
local.player.checked = 0
end
////////////////////////////////////////////////////////////
////////////// Weapon Swap Part ///////////////////////////
weapon_swap local.player:
if (getcvar(pe_weapon_swap) == "1")
{
if(local.player && !local.player.swapped && isAlive(local.player) && local.player.dmteam == "allies")
{
local.player iprint "Swap Start"
local.player weaponcommand dual targetname ("weap" + local.player.entnum )
local.player.weapon = $("weap" + local.player.entnum ).model
switch(local.player.weapon)
{
case "models/weapons/springfield.tik":
local.take = "models/weapons/springfield.tik"
local.takename = "Springfield"
local.give = "models/weapons/KAR98sniper.tik"
local.givename = "Kar98Sniper"
break
case "models/weapons/m1_garand.tik":
local.take = "models/weapons/m1_garand.tik"
local.takename = " M1 Garand"
local.give = "models/weapons/kar98.tik"
local.givename = "Mausar kar98"
break
default:
end
}
wait 1
if(local.player && isAlive(local.player) && local.player.dmteam != "spectator")
{
if(local.player.swap == "1")
{
local.player take local.take
local.player give local.give
local.player iprint (local.takename + " has been swapped for " + local.givename) 1
local.player ammo rifle -42
local.player use local.give
local.player iprint ("Hold 'Use' again to change back") 1
local.wait = 3.0
while(local.player.useheld && 0.0 < local.wait) {
wait 0.25
local.wait -= 0.25
}
if (local.wait <= 0.0) {
local.player take local.give
local.player give local.take
local.player ammo rifle -42
local.player use local.take
local.player.swap = "0"
}
local.player.swapped = 1
} else {
local.player iprint ("Hold 'Use' for 3 Seconds to change") 1
local.wait = 2.0
while(local.player.useheld && 0.0 < local.wait) {
wait 0.25
local.wait -= 0.25
}
if (local.wait <= 0.0) {
local.player take local.take
local.player give local.give
local.player ammo rifle -42
local.player iprint (local.takename + " has been swapped for " + local.givename) 1
local.player use local.give
local.player.swap = "1"
local.player.swapped = 1
}
}
local.player.swapped = 1
local.player iprint "Swap End"
}
}
}
wait 0.5
local.player.swapped = 0
end
get_cvars:
//////////////////////////////
level.notallowed[1] = ""
level.notallowed[2] = ""
level.notallowed[3] = ""
level.notallowed[4] = ""
level.notallowed[5] = ""
level.notallowed[6] = ""
level.notallowed[7] = ""
level.notallowed[8] = ""
level.notallowed[9] = ""
level.notallowed[10] = ""
level.notallowed[11] = ""
//////////////////////////////////////////////////////////////
////////////////////// Get Cvars ////////////////////////////
if(getcvar(PE_mg) == "0")
{
level.notallowed[1] = "models/weapons/bar.tik"
level.notallowed[2] = "models/weapons/mp44.tik"
}
if(getcvar(PE_rocket) == "0")
{
level.notallowed[3] = "models/weapons/bazooka.tik"
level.notallowed[4] = "models/weapons/panzerschreck.tik"
}
if(getcvar(PE_shotgun) == "0")
{
level.notallowed[5] = "models/weapons/shotgun.tik"
}
if(getcvar(PE_rifle) == "0")
{
level.notallowed[6] = "models/weapons/m1_garand.tik"
level.notallowed[7] = "models/weapons/kar98.tik"
}
if(getcvar(PE_sniper) == "0")
{
level.notallowed[8] = "models/weapons/springfield.tik"
level.notallowed[9] = "models/weapons/KAR98sniper.tik"
}
if(getcvar(PE_smg) == "0")
{
level.notallowed[10] = "models/weapons/thompsonsmg.tik"
level.notallowed[11] = "models/weapons/mp40.tik"
}
if(getcvar(PE_pistol) == "0")
{
level.player take "models/weapons/colt45.tik"
level.player take "models/weapons/p38.tik"
}
if(getcvar(PE_grenade) == "0")
{
level.player take "models/weapons/m2frag_grenade.tik"
level.player take "models/weapons/steilhandgranate.tik"
}
end
/////////////////////////////////////////////////////////////
/////////////////////// Message Part /////////////////////////
weapon_message:
level.allowed = "Allowed Weapons:"
if (getcvar(pe_allweapons) == "1")
level.allowed += " All Weapons "
else
{
if (getcvar(pe_pistol) == "1")
level.allowed += " Pistol,"
if (getcvar(pe_rifle) == "1")
level.allowed += " Rifle,"
if (getcvar(pe_sniper) == "1")
level.allowed += " Sniper,"
if (getcvar(pe_smg) == "1")
level.allowed += " SMG,"
if (getcvar(pe_mg) == "1")
level.allowed += " MG,"
if (getcvar(pe_grenade) == "1")
level.allowed += " Grenades,"
if (getcvar(pe_shotgun) == "1")
level.allowed += " Shotgun,"
if (getcvar(pe_rocket) == "1")
level.allowed += " Rocket,"
}
end
Now it no longer repeats the entire script
I added prints to tell me what parts start and what parts finish
Now
Weapon Check part
ie Start Check and End Check
Runs only Once , whether you be axis or allies, swapped or not swapped , whether it took your weapon or not if you choose wrong
Swapping part
ie Swap Start and Swap End
Now this is where it gets weird , when the round hasnt started , works fine , they only appear once and you can swap and change
As soon as the 2nd!! round starts , so after they die in first round, stuffs up come 2nd round , then the messages appear as follows:
Code:
Start Check
Swap Start
End Check
Swap Start
Hold 'Use' for 3 Seconds to change
Swap End
Hold 'Use' for 3 Seconds to change
Swap End
So its repeating itself on the swap part only , i dont no how the first swap start is before the end check even with the waitthread...
And its making you choose to swap again every round